1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| package com.example.demo.controller;
import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.CircleCaptcha; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream;
@Slf4j @RestController public class CaptchaController { public final static String SESSION_KEY_IMAGE_CODE = "SESSION_KEY_IMAGE_CODE";
@GetMapping("/code/image") public void createCode(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setCharacterEncoding("UTF-8"); response.setHeader("Pragma","No-chache"); response.setHeader("Cache-Control","no-chache"); response.setDateHeader("Expires",0); response.setContentType("image/jpeg");
CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(100,20,4,3); System.out.println(captcha.getCode());
request.getSession().setAttribute(SESSION_KEY_IMAGE_CODE, captcha.getCode()); log.info("Captcha:" + captcha.getCode() + ",already arrive deposit HttpSession");
OutputStream outputStream = response.getOutputStream(); captcha.write(outputStream); outputStream.flush(); outputStream.close(); } }
|